home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1998 September / Macworld (1998-09).dmg / Shareware World / Info / For Developers / MacZoop 1.8.3 / Projects / Basic MacZoop Project / ProjectSettings.h < prev   
Text File  |  1998-07-10  |  10KB  |  272 lines

  1. /*************************************************************************************************
  2. *
  3. *
  4. *            MacZoop - "the framework for the rest of us"             
  5. *
  6. *
  7. *
  8. *            ProjectSettings.h        -- compiler flags and other settings specific to your
  9. *                                        project. Copy this file and change things as you
  10. *                                        need them. This file has the default settings.
  11. *
  12. *
  13. *            © 1996, Graham Cox
  14. *
  15. *
  16. *
  17. *
  18. *************************************************************************************************/
  19.  
  20.  
  21. #pragma once
  22.  
  23. #ifndef __PROJECTSETTINGS__
  24. #define    __PROJECTSETTINGS__
  25.  
  26. #define        ON        1
  27. #define        OFF        0
  28.  
  29. //----------------------------------------------------------------------------------------------
  30.  
  31. // ZApplication compilation options:
  32.  
  33. // Every application should have a "signature"- a 32-bit number that is uniquely assigned to it.
  34. // Apple keep a register of application signatures to ensure they are unique. The signature is
  35. // declared as part of the 'BNDL' resource, if you have one. MacZoop will pick up this value
  36. // and assign it to <gAppSignature>. If you do not have a BNDL resource, or for backward
  37. // compatibility want to set the signature yourself, set the following to OFF: (default ON)
  38.  
  39.  
  40. #define        USE_SIGNATURE_FROM_BNDL    ON
  41.  
  42.  
  43. // if the above is OFF, you can set up your signature here.The default signature of this
  44. // application is 'ZAPP' (n.b. NOT registered with Apple!).
  45.  
  46.  
  47. #if USE_SIGNATURE_FROM_BNDL == OFF
  48. #define        kApplicationSignature    'ZAPP'
  49. #else
  50.  
  51. // you can automatically build the application's list of openable file types by looking at
  52. // the 'FREF' resources that it has. One of these will generally be 'APPL' or other executable
  53. // type which are NEVER added to the list, but other file types are if this is ON. This is only
  54. // available if USE_SIGNATURE_FROM_BNDL is also ON (Default: OFF):
  55.  
  56. #define        CHECK_FREF_RESOURCE_TYPES    ON
  57. #endif
  58.  
  59. //----------------------------------------------------------------------------------------------
  60.  
  61. // to deal with low-memory crises, ZApplication allocates and manages a "shortage fund" which
  62. // it can release when the memory manager gets into trouble. BY default this is 64K, but you
  63. // can set it to whatever you want by setting this #define. This fund is designed to cope with
  64. // dire emergencies only- you may need to do more sophisticated memory management for complex
  65. // or memory-intensive applications.
  66.  
  67.  
  68. #define        kShortageFundSize        65536    // leave 64K in reserve for emergencies.
  69.  
  70.  
  71. //----------------------------------------------------------------------------------------------
  72.  
  73. // By default, MacZoop will work like a normal Mac application in that it will open a new
  74. // "untitled" window at startup if no files are passed to it. If you want to make a "faceless"
  75. // application, turn OFF the following define to suppress the opening of the initial window.
  76.  
  77. // Default is ON
  78.  
  79. #define        MAKE_UNTITLED_STARTUP_WINDOW        ON
  80.  
  81.  
  82. //----------------------------------------------------------------------------------------------
  83.  
  84. // comment out the following if you do not want printing support
  85.  
  86. // Default is ON
  87.  
  88. #define        PRINTING_ON            ON
  89.  
  90. // Printing options:
  91.  
  92. // If you want to use a progress bar when printing ("Spooling page <n> of <y> pages") then set
  93. // this define to ON.
  94.  
  95. // Default is OFF
  96.  
  97. #define        _PRINT_USING_PROGRESS_BAR    OFF
  98.  
  99.  
  100. //----------------------------------------------------------------------------------------------
  101.  
  102. // if you wish to use the Appearance Manager-savvy parts of MacZoop when running under
  103. // System 8, set the following to ON. If undefined, will implement standard System 7 behaviour.
  104. // If you compile with this defined, things should still work on previous system versions.
  105. // Note that if you are building an appearance aware app with MacZoop, you need to link with
  106. // the AppearanceLib library as well as define this.
  107.  
  108. // Default is OFF
  109.  
  110.  
  111. #define        APPEARANCE_MGR_AWARE    OFF
  112.  
  113.  
  114.  
  115. //----------------------------------------------------------------------------------------------
  116.  
  117. // ZWindowManager compilation options:
  118.  
  119. // HIG says that all floating windows are peers of one another and thus all show the active
  120. // state regardless of their ordering within their layer. Some programmers may prefer the
  121. // other common behaviour where only one floater is active at a time. To get this latter
  122. // behaviour,  set the following define to OFF and recompile. n.b. windows will still receive
  123. // their activate/deactivate messages- this only affects the window hiliting.
  124.  
  125. // Default is ON
  126.  
  127. #define    _ALL_FLOATERS_ACTIVE    ON
  128.  
  129. // this window manager does not allow activate events to be sent by the mac toolbox, but
  130. // instead calls the event handler directly with the relevant parameters. In most cases, your
  131. // code won't be aware of this, but if you really need to get a "real" activation event, 
  132. // comment in the following define. This makes the window manager post a real activation event
  133. // instead of "faking" one.
  134.  
  135. // Default is OFF
  136.  
  137. #define    _ACTIVATE_EVENTS_ARE_REAL    OFF
  138.  
  139. // When a window is picked up by its title bar for dragging, it is first brought to the front
  140. // of its layer (unless the command key is down). This selection can result in a non-updated
  141. // area of the window appearing until the drag is completed, at which point the window is
  142. // refreshed. This is the normal behaviour. However, this window manager object can prevent
  143. // this by forcing the update to occur immediately. This may give better perceived performance,
  144. // since the user won't be waiting for the update to come along later. To get this behaviour,
  145. // comment in the following:
  146.  
  147. // Default is ON
  148.  
  149. #define    _UPDATE_ON_SELECT    ON
  150.  
  151. // Similarly, in the same situation, we select the window before dragging it. This is not what
  152. // DragWindow does- it selects the window after dragging. If you really desire this behaviour
  153. // instead, comment in the following:
  154.  
  155. // Default is OFF
  156.  
  157. #define    _DRAGWINDOW_COMPATIBLE    OFF
  158.  
  159. // If you are taking advantage of the automatic support for a "Windows" menu, you might want to
  160. // list the windows alphabetically. The default is to list them in order of creation. To list
  161. // alphabetically, turn ON the following:
  162.  
  163. // Default is OFF
  164.  
  165. #define    _ALPHABETICAL_WINDOWS_MENU    OFF
  166.  
  167. // if you'd like windows that have an associated file to popup a directory menu when their
  168. // titles are command-clicked, set this to ON. A menu choice opens the relevant directory
  169. // window in the Finder. The code required to implement this is available  separately-
  170. // called "DirectoryPopup" © by Marco Piovanelli. A version of this code is available in the
  171. // More Classes:Goodies & Extras:DirectoryPopup folder.
  172.  
  173. // Default is OFF
  174.  
  175. #define    _USE_DIR_POPUP    OFF
  176.  
  177.  
  178. //----------------------------------------------------------------------------------------------
  179.  
  180. // ZMenuBar & ZEventHandler compilation options:
  181.  
  182. // comment IN for automatic mouse-aware menubar hiding (implemented in ZEventHandler)
  183.  
  184. // Default is OFF
  185.  
  186. #define    _AUTO_MBAR_HIDING    OFF
  187.  
  188.  
  189. //----------------------------------------------------------------------------------------------
  190.  
  191. // ZFile compilation options:
  192.  
  193. // ZFile has methods for automatically building custom icons for a file. This support requires
  194. // that you have "PixmapUtils.cpp" in your project, which adds some overhead. If you don't
  195. // need this support, turn off following which will make things smaller.
  196.  
  197. // Default is ON
  198.  
  199. #define    _CUSTOM_ICON_SUPPORT    ON
  200.  
  201. //----------------------------------------------------------------------------------------------
  202.  
  203. // Zoom rect effect options:
  204.  
  205. // if you have the drag manager, and your app links to DragLib, and this define is ON, then
  206. // every window you open will have a finder-like "zoom" rect effect. The source of this rect
  207. // is set by SetLocalZoomSource or SetGlobalZoomSource in ZWindowManager.h. This is automatically
  208. // set by menu items, dialog button clicks, etc. You only need to deal with this if you have
  209. // an interface element that spawns a window that is not a menu or a button.
  210.  
  211. // Default is ON
  212.  
  213. #define    _ZOOM_RECT_FX    ON
  214.  
  215. //----------------------------------------------------------------------------------------------
  216.  
  217. // Window save/restore features:
  218.  
  219. // MacZoop can save and restore your window positions by storing a 'Wpos' resource for a window
  220. // in a nominated resource file (including prefs). Your code has to make the calls for your own
  221. // document windows, but some automatic features are also provided, especially for dialogs.
  222. // These flags control the implementation.
  223.  
  224. // enables the code in general- your project will require at least ZResourceFile and ZPrefsFile
  225. // if ON. The basic code is implemented in ZWindowManager, with a simpler API in ZWindow.
  226.  
  227. #define    _WPOS_WINDOW_PLACEMENT        OFF
  228.  
  229. // enable automatic save/restore for dialogs and floaters:
  230.  
  231. #if _WPOS_WINDOW_PLACEMENT
  232.     #define    _AUTO_WPOS_FOR_DIALOGS    ON
  233.     #define    _AUTO_WPOS_FOR_FLOATERS    ON
  234. #endif
  235.  
  236. //----------------------------------------------------------------------------------------------
  237.  
  238. // progress dialog options:
  239.  
  240. // if OFF, your code needs to check for a cancel of the progress dialog by checking the return
  241. // value of InformProgress(). If ON, the dialog itself throws a cancel exception making it
  242. // even easier to use- however, you may need an exception handler to clean up properly.
  243.  
  244. // Default is ON
  245.  
  246. #define    _CANCEL_PROGRESS_THROWS_EXCEPTION    ON
  247.  
  248. //----------------------------------------------------------------------------------------------
  249.  
  250. // Navigation Services options:
  251.  
  252. // MacOS 7.5.5 and later can use the new Apple Navigation Services instead of StandardFile to
  253. // choose files for opening, saving, etc. This interface is extremely groovy and will be the
  254. // only one supported under Mac OSX. MacZoop can use this right now if you have it installed. If
  255. // you desperately want the old interfaces, turn this option OFF (default is ON). Note that
  256. // you'll get the old interfaces anyway if Navigation is not installed or your system is too
  257. // old. n.b. if ON, you need to add NavigationLib to your project.
  258.  
  259. // Default is ON
  260.  
  261. #define    _USE_NAVIGATION_SERVICES    OFF
  262.  
  263. // Navigation services provides some standard alerts for Save Changes and Revert. At present,
  264. // these are slightly buggy in that they don't position very well over floating windows, and
  265. // in any case the MacZoop ones look nicer. This this additional setting allows you to choose
  266. // which ones to use. Note that using the MacZoop ones does NOT affect Carbon compatibility.
  267.  
  268. #if _USE_NAVIGATION_SERVICES
  269. #define    _USE_NAV_SAVEREVERT_ALERTS    OFF
  270. #endif
  271.  
  272. #endif